package com.bwie.common.pojo;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 交易流水表
 * </p>
 *
 * @author liuxin
 * @since 2025-04-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_transaction_records")
@ApiModel(value="TTransactionRecords对象", description="交易流水表")
public class TransactionRecords implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "交易流水唯一标识")
    @TableId(value = "transaction_id", type = IdType.AUTO)
    private Long transactionId;

    @ApiModelProperty(value = "交易流水号")
    private String transactionNumber;

    @ApiModelProperty(value = "订单编号")
    private String orderNumber;

    @ApiModelProperty(value = "支付金额")
    private BigDecimal paymentAmount;

    @ApiModelProperty(value = "支付类型（0:钱包, 1:支付宝, 2:微信）")
    private Integer paymentType;

    @ApiModelProperty(value = "支付状态（0:处理中, 1:成功, 2:失败）")
    private Integer paymentStatus;

    @ApiModelProperty(value = "活动类型（1：没有参加活动2：秒杀 3：拼团）")
    private Integer activityType;

    @ApiModelProperty(value = "第三方交易流水号")
    private String thirdPartyTransactionNumber;

    @ApiModelProperty(value = "第三方支付状态")
    private Integer thirdPartyPaymentStatus;

    @ApiModelProperty(value = "第三方支付回调内容")
    private String thirdPartyCallbackContent;

    @ApiModelProperty(value = "第三方错误信息")
    private String thirdPartyErrorMessage;

    @ApiModelProperty(value = "回调时间")
    private LocalDateTime callbackTime;

    @ApiModelProperty(value = "逻辑删除（0:正常, 1:删除）")
    private Integer isDeleted;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createdAt;

    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updatedAt;


}
